(component
  (type $ty-ns:pkg/i@0.2.1 (;0;)
    (instance
      (export (;0;) "r" (type (sub resource)))
      (type (;1;) (own 0))
      (type (;2;) (func (param "s" string) (result 1)))
      (export (;0;) "[constructor]r" (func (type 2)))
      (type (;3;) (borrow 0))
      (type (;4;) (func (param "self" 3) (result string)))
      (export (;1;) "[method]r.m" (func (type 4)))
      (type (;5;) (func (param "in" 1) (result 1)))
      (export (;2;) "frob" (func (type 5)))
    )
  )
  (import "ns:pkg/i@0.2.1" (instance $ns:pkg/i@0.2.1 (;0;) (type $ty-ns:pkg/i@0.2.1)))
  (type $ty-j (;1;)
    (instance
      (export (;0;) "r" (type (sub resource)))
      (type (;1;) (own 0))
      (type (;2;) (func (param "s" string) (result 1)))
      (export (;0;) "[constructor]r" (func (type 2)))
      (type (;3;) (borrow 0))
      (type (;4;) (func (param "self" 3) (result string)))
      (export (;1;) "[method]r.m" (func (type 4)))
      (type (;5;) (func (param "in" 1) (result 1)))
      (export (;2;) "frob" (func (type 5)))
    )
  )
  (import "j" (instance $j (;1;) (type $ty-j)))
  (type (;2;) (func (result string)))
  (import "f" (func $f (;0;) (type 2)))
  (core module $main (;0;)
    (type (;0;) (func (param i32)))
    (type (;1;) (func (param i32 i32) (result i32)))
    (type (;2;) (func (param i32 i32)))
    (type (;3;) (func (param i32) (result i32)))
    (type (;4;) (func (result i32)))
    (type (;5;) (func (param i32 i32 i32 i32) (result i32)))
    (type (;6;) (func))
    (import "cm32p2" "f" (func (;0;) (type 0)))
    (import "cm32p2|ns:pkg/i@0.2" "[constructor]r" (func (;1;) (type 1)))
    (import "cm32p2|ns:pkg/i@0.2" "[method]r.m" (func (;2;) (type 2)))
    (import "cm32p2|ns:pkg/i@0.2" "frob" (func (;3;) (type 3)))
    (import "cm32p2|ns:pkg/i@0.2" "r_drop" (func (;4;) (type 0)))
    (import "cm32p2|j" "[constructor]r" (func (;5;) (type 1)))
    (import "cm32p2|j" "[method]r.m" (func (;6;) (type 2)))
    (import "cm32p2|j" "frob" (func (;7;) (type 3)))
    (import "cm32p2|j" "r_drop" (func (;8;) (type 0)))
    (import "cm32p2|_ex_ns:pkg/i@0.2" "r_drop" (func (;9;) (type 0)))
    (import "cm32p2|_ex_ns:pkg/i@0.2" "r_new" (func (;10;) (type 3)))
    (import "cm32p2|_ex_ns:pkg/i@0.2" "r_rep" (func (;11;) (type 3)))
    (import "cm32p2|_ex_j" "r_drop" (func (;12;) (type 0)))
    (import "cm32p2|_ex_j" "r_new" (func (;13;) (type 3)))
    (import "cm32p2|_ex_j" "r_rep" (func (;14;) (type 3)))
    (memory (;0;) 0)
    (export "cm32p2_memory" (memory 0))
    (export "cm32p2||g" (func 15))
    (export "cm32p2||g_post" (func 16))
    (export "cm32p2|ns:pkg/i@0.2|[constructor]r" (func 17))
    (export "cm32p2|ns:pkg/i@0.2|[method]r.m" (func 18))
    (export "cm32p2|ns:pkg/i@0.2|frob" (func 19))
    (export "cm32p2|ns:pkg/i@0.2|r_dtor" (func 20))
    (export "cm32p2|j|[constructor]r" (func 21))
    (export "cm32p2|j|[method]r.m" (func 22))
    (export "cm32p2|j|frob" (func 23))
    (export "cm32p2|j|r_dtor" (func 24))
    (export "cm32p2_realloc" (func 25))
    (export "cm32p2_initialize" (func 26))
    (func (;15;) (type 4) (result i32)
      unreachable
    )
    (func (;16;) (type 0) (param i32)
      unreachable
    )
    (func (;17;) (type 1) (param i32 i32) (result i32)
      unreachable
    )
    (func (;18;) (type 3) (param i32) (result i32)
      unreachable
    )
    (func (;19;) (type 3) (param i32) (result i32)
      unreachable
    )
    (func (;20;) (type 0) (param i32)
      unreachable
    )
    (func (;21;) (type 1) (param i32 i32) (result i32)
      unreachable
    )
    (func (;22;) (type 3) (param i32) (result i32)
      unreachable
    )
    (func (;23;) (type 3) (param i32) (result i32)
      unreachable
    )
    (func (;24;) (type 0) (param i32)
      unreachable
    )
    (func (;25;) (type 5) (param i32 i32 i32 i32) (result i32)
      unreachable
    )
    (func (;26;) (type 6))
    (@producers
      (processed-by "wit-component" "$CARGO_PKG_VERSION")
      (processed-by "my-fake-bindgen" "123.45")
    )
  )
  (core module $wit-component-shim-module (;1;)
    (type (;0;) (func (param i32)))
    (type (;1;) (func (param i32 i32) (result i32)))
    (type (;2;) (func (param i32 i32)))
    (type (;3;) (func (param i32)))
    (table (;0;) 7 7 funcref)
    (export "0" (func $indirect-cm32p2-f))
    (export "1" (func $"indirect-cm32p2|ns:pkg/i@0.2-[constructor]r"))
    (export "2" (func $"indirect-cm32p2|ns:pkg/i@0.2-[method]r.m"))
    (export "3" (func $"indirect-cm32p2|j-[constructor]r"))
    (export "4" (func $"indirect-cm32p2|j-[method]r.m"))
    (export "5" (func $dtor-r))
    (export "6" (func $"#func6 dtor-r"))
    (export "$imports" (table 0))
    (func $indirect-cm32p2-f (;0;) (type 0) (param i32)
      local.get 0
      i32.const 0
      call_indirect (type 0)
    )
    (func $"indirect-cm32p2|ns:pkg/i@0.2-[constructor]r" (;1;) (type 1) (param i32 i32) (result i32)
      local.get 0
      local.get 1
      i32.const 1
      call_indirect (type 1)
    )
    (func $"indirect-cm32p2|ns:pkg/i@0.2-[method]r.m" (;2;) (type 2) (param i32 i32)
      local.get 0
      local.get 1
      i32.const 2
      call_indirect (type 2)
    )
    (func $"indirect-cm32p2|j-[constructor]r" (;3;) (type 1) (param i32 i32) (result i32)
      local.get 0
      local.get 1
      i32.const 3
      call_indirect (type 1)
    )
    (func $"indirect-cm32p2|j-[method]r.m" (;4;) (type 2) (param i32 i32)
      local.get 0
      local.get 1
      i32.const 4
      call_indirect (type 2)
    )
    (func $dtor-r (;5;) (type 3) (param i32)
      local.get 0
      i32.const 5
      call_indirect (type 3)
    )
    (func $"#func6 dtor-r" (@name "dtor-r") (;6;) (type 3) (param i32)
      local.get 0
      i32.const 6
      call_indirect (type 3)
    )
    (@producers
      (processed-by "wit-component" "$CARGO_PKG_VERSION")
    )
  )
  (core module $wit-component-fixup (;2;)
    (type (;0;) (func (param i32)))
    (type (;1;) (func (param i32 i32) (result i32)))
    (type (;2;) (func (param i32 i32)))
    (type (;3;) (func (param i32)))
    (import "" "0" (func (;0;) (type 0)))
    (import "" "1" (func (;1;) (type 1)))
    (import "" "2" (func (;2;) (type 2)))
    (import "" "3" (func (;3;) (type 1)))
    (import "" "4" (func (;4;) (type 2)))
    (import "" "5" (func (;5;) (type 3)))
    (import "" "6" (func (;6;) (type 3)))
    (import "" "$imports" (table (;0;) 7 7 funcref))
    (elem (;0;) (i32.const 0) func 0 1 2 3 4 5 6)
    (@producers
      (processed-by "wit-component" "$CARGO_PKG_VERSION")
    )
  )
  (core instance $wit-component-shim-instance (;0;) (instantiate $wit-component-shim-module))
  (alias core export $wit-component-shim-instance "5" (core func $dtor-r (;0;)))
  (type $r (;3;) (resource (rep i32) (dtor (func $dtor-r))))
  (alias core export $wit-component-shim-instance "6" (core func $"#core-func1 dtor-r" (@name "dtor-r") (;1;)))
  (type $"#type4 r" (@name "r") (;4;) (resource (rep i32) (dtor (func $"#core-func1 dtor-r"))))
  (alias core export $wit-component-shim-instance "0" (core func $indirect-cm32p2-f (;2;)))
  (core instance $cm32p2 (;1;)
    (export "f" (func $indirect-cm32p2-f))
  )
  (alias core export $wit-component-shim-instance "1" (core func $"indirect-cm32p2|ns:pkg/i@0.2-[constructor]r" (;3;)))
  (alias core export $wit-component-shim-instance "2" (core func $"indirect-cm32p2|ns:pkg/i@0.2-[method]r.m" (;4;)))
  (alias export $ns:pkg/i@0.2.1 "frob" (func $frob (;1;)))
  (core func $frob (;5;) (canon lower (func $frob)))
  (alias export $ns:pkg/i@0.2.1 "r" (type $"#type5 r" (@name "r") (;5;)))
  (core func $resource.drop (;6;) (canon resource.drop $"#type5 r"))
  (core instance $cm32p2|ns:pkg/i@0.2 (;2;)
    (export "[constructor]r" (func $"indirect-cm32p2|ns:pkg/i@0.2-[constructor]r"))
    (export "[method]r.m" (func $"indirect-cm32p2|ns:pkg/i@0.2-[method]r.m"))
    (export "frob" (func $frob))
    (export "r_drop" (func $resource.drop))
  )
  (alias core export $wit-component-shim-instance "3" (core func $"indirect-cm32p2|j-[constructor]r" (;7;)))
  (alias core export $wit-component-shim-instance "4" (core func $"indirect-cm32p2|j-[method]r.m" (;8;)))
  (alias export $j "frob" (func $"#func2 frob" (@name "frob") (;2;)))
  (core func $"#core-func9 frob" (@name "frob") (;9;) (canon lower (func $"#func2 frob")))
  (alias export $j "r" (type $"#type6 r" (@name "r") (;6;)))
  (core func $"#core-func10 resource.drop" (@name "resource.drop") (;10;) (canon resource.drop $"#type6 r"))
  (core instance $cm32p2|j (;3;)
    (export "[constructor]r" (func $"indirect-cm32p2|j-[constructor]r"))
    (export "[method]r.m" (func $"indirect-cm32p2|j-[method]r.m"))
    (export "frob" (func $"#core-func9 frob"))
    (export "r_drop" (func $"#core-func10 resource.drop"))
  )
  (core func $"#core-func11 resource.drop" (@name "resource.drop") (;11;) (canon resource.drop $r))
  (core func $resource.new (;12;) (canon resource.new $r))
  (core func $resource.rep (;13;) (canon resource.rep $r))
  (core instance $cm32p2|_ex_ns:pkg/i@0.2 (;4;)
    (export "r_drop" (func $"#core-func11 resource.drop"))
    (export "r_new" (func $resource.new))
    (export "r_rep" (func $resource.rep))
  )
  (core func $"#core-func14 resource.drop" (@name "resource.drop") (;14;) (canon resource.drop $"#type4 r"))
  (core func $"#core-func15 resource.new" (@name "resource.new") (;15;) (canon resource.new $"#type4 r"))
  (core func $"#core-func16 resource.rep" (@name "resource.rep") (;16;) (canon resource.rep $"#type4 r"))
  (core instance $cm32p2|_ex_j (;5;)
    (export "r_drop" (func $"#core-func14 resource.drop"))
    (export "r_new" (func $"#core-func15 resource.new"))
    (export "r_rep" (func $"#core-func16 resource.rep"))
  )
  (core instance $main (;6;) (instantiate $main
      (with "cm32p2" (instance $cm32p2))
      (with "cm32p2|ns:pkg/i@0.2" (instance $cm32p2|ns:pkg/i@0.2))
      (with "cm32p2|j" (instance $cm32p2|j))
      (with "cm32p2|_ex_ns:pkg/i@0.2" (instance $cm32p2|_ex_ns:pkg/i@0.2))
      (with "cm32p2|_ex_j" (instance $cm32p2|_ex_j))
    )
  )
  (alias core export $main "cm32p2_memory" (core memory $memory (;0;)))
  (alias core export $wit-component-shim-instance "$imports" (core table $"shim table" (;0;)))
  (alias core export $main "cm32p2_realloc" (core func $realloc (;17;)))
  (core func $"#core-func18 indirect-cm32p2-f" (@name "indirect-cm32p2-f") (;18;) (canon lower (func $f) (memory $memory) (realloc $realloc) string-encoding=utf8))
  (alias export $ns:pkg/i@0.2.1 "[constructor]r" (func $"[constructor]r" (;3;)))
  (core func $"#core-func19 indirect-cm32p2|ns:pkg/i@0.2-[constructor]r" (@name "indirect-cm32p2|ns:pkg/i@0.2-[constructor]r") (;19;) (canon lower (func $"[constructor]r") (memory $memory) string-encoding=utf8))
  (alias export $ns:pkg/i@0.2.1 "[method]r.m" (func $"[method]r.m" (;4;)))
  (core func $"#core-func20 indirect-cm32p2|ns:pkg/i@0.2-[method]r.m" (@name "indirect-cm32p2|ns:pkg/i@0.2-[method]r.m") (;20;) (canon lower (func $"[method]r.m") (memory $memory) (realloc $realloc) string-encoding=utf8))
  (alias export $j "[constructor]r" (func $"#func5 [constructor]r" (@name "[constructor]r") (;5;)))
  (core func $"#core-func21 indirect-cm32p2|j-[constructor]r" (@name "indirect-cm32p2|j-[constructor]r") (;21;) (canon lower (func $"#func5 [constructor]r") (memory $memory) string-encoding=utf8))
  (alias export $j "[method]r.m" (func $"#func6 [method]r.m" (@name "[method]r.m") (;6;)))
  (core func $"#core-func22 indirect-cm32p2|j-[method]r.m" (@name "indirect-cm32p2|j-[method]r.m") (;22;) (canon lower (func $"#func6 [method]r.m") (memory $memory) (realloc $realloc) string-encoding=utf8))
  (alias core export $main "cm32p2|ns:pkg/i@0.2|r_dtor" (core func $cm32p2|ns:pkg/i@0.2|r_dtor (;23;)))
  (alias core export $main "cm32p2|j|r_dtor" (core func $cm32p2|j|r_dtor (;24;)))
  (core instance $fixup-args (;7;)
    (export "$imports" (table $"shim table"))
    (export "0" (func $"#core-func18 indirect-cm32p2-f"))
    (export "1" (func $"#core-func19 indirect-cm32p2|ns:pkg/i@0.2-[constructor]r"))
    (export "2" (func $"#core-func20 indirect-cm32p2|ns:pkg/i@0.2-[method]r.m"))
    (export "3" (func $"#core-func21 indirect-cm32p2|j-[constructor]r"))
    (export "4" (func $"#core-func22 indirect-cm32p2|j-[method]r.m"))
    (export "5" (func $cm32p2|ns:pkg/i@0.2|r_dtor))
    (export "6" (func $cm32p2|j|r_dtor))
  )
  (core instance $fixup (;8;) (instantiate $wit-component-fixup
      (with "" (instance $fixup-args))
    )
  )
  (alias core export $main "cm32p2_initialize" (core func $start (;25;)))
  (core module $start-shim-module (;3;)
    (type (;0;) (func))
    (import "" "" (func (;0;) (type 0)))
    (start 0)
  )
  (core instance $start-shim-args (;9;)
    (export "" (func $start))
  )
  (core instance $start-shim-instance (;10;) (instantiate $start-shim-module
      (with "" (instance $start-shim-args))
    )
  )
  (alias core export $main "cm32p2||g" (core func $cm32p2||g (;26;)))
  (alias core export $main "cm32p2||g_post" (core func $cm32p2||g_post (;27;)))
  (func $g (;7;) (type 2) (canon lift (core func $cm32p2||g) (memory $memory) string-encoding=utf8 (post-return $cm32p2||g_post)))
  (export $"#func8 g" (@name "g") (;8;) "g" (func $g))
  (type (;7;) (own $r))
  (type (;8;) (func (param "s" string) (result 7)))
  (alias core export $main "cm32p2|ns:pkg/i@0.2|[constructor]r" (core func $"cm32p2|ns:pkg/i@0.2|[constructor]r" (;28;)))
  (func $"#func9 [constructor]r" (@name "[constructor]r") (;9;) (type 8) (canon lift (core func $"cm32p2|ns:pkg/i@0.2|[constructor]r") (memory $memory) (realloc $realloc) string-encoding=utf8))
  (type (;9;) (borrow $r))
  (type (;10;) (func (param "self" 9) (result string)))
  (alias core export $main "cm32p2|ns:pkg/i@0.2|[method]r.m" (core func $"cm32p2|ns:pkg/i@0.2|[method]r.m" (;29;)))
  (func $"#func10 [method]r.m" (@name "[method]r.m") (;10;) (type 10) (canon lift (core func $"cm32p2|ns:pkg/i@0.2|[method]r.m") (memory $memory) string-encoding=utf8))
  (type (;11;) (func (param "in" 7) (result 7)))
  (alias core export $main "cm32p2|ns:pkg/i@0.2|frob" (core func $cm32p2|ns:pkg/i@0.2|frob (;30;)))
  (func $"#func11 frob" (@name "frob") (;11;) (type 11) (canon lift (core func $cm32p2|ns:pkg/i@0.2|frob)))
  (component $ns:pkg/i@0.2.1-shim-component (;0;)
    (import "import-type-r" (type (;0;) (sub resource)))
    (type (;1;) (own 0))
    (type (;2;) (func (param "s" string) (result 1)))
    (import "import-constructor-r" (func (;0;) (type 2)))
    (type (;3;) (borrow 0))
    (type (;4;) (func (param "self" 3) (result string)))
    (import "import-method-r-m" (func (;1;) (type 4)))
    (type (;5;) (func (param "in" 1) (result 1)))
    (import "import-func-frob" (func (;2;) (type 5)))
    (export (;6;) "r" (type 0))
    (type (;7;) (own 6))
    (type (;8;) (func (param "s" string) (result 7)))
    (export (;3;) "[constructor]r" (func 0) (func (type 8)))
    (type (;9;) (borrow 6))
    (type (;10;) (func (param "self" 9) (result string)))
    (export (;4;) "[method]r.m" (func 1) (func (type 10)))
    (type (;11;) (func (param "in" 7) (result 7)))
    (export (;5;) "frob" (func 2) (func (type 11)))
  )
  (instance $ns:pkg/i@0.2.1-shim-instance (;2;) (instantiate $ns:pkg/i@0.2.1-shim-component
      (with "import-constructor-r" (func $"#func9 [constructor]r"))
      (with "import-method-r-m" (func $"#func10 [method]r.m"))
      (with "import-func-frob" (func $"#func11 frob"))
      (with "import-type-r" (type $r))
    )
  )
  (export $"#instance3 ns:pkg/i@0.2.1" (@name "ns:pkg/i@0.2.1") (;3;) "ns:pkg/i@0.2.1" (instance $ns:pkg/i@0.2.1-shim-instance))
  (type (;12;) (own $"#type4 r"))
  (type (;13;) (func (param "s" string) (result 12)))
  (alias core export $main "cm32p2|j|[constructor]r" (core func $"cm32p2|j|[constructor]r" (;31;)))
  (func $"#func12 [constructor]r" (@name "[constructor]r") (;12;) (type 13) (canon lift (core func $"cm32p2|j|[constructor]r") (memory $memory) (realloc $realloc) string-encoding=utf8))
  (type (;14;) (borrow $"#type4 r"))
  (type (;15;) (func (param "self" 14) (result string)))
  (alias core export $main "cm32p2|j|[method]r.m" (core func $"cm32p2|j|[method]r.m" (;32;)))
  (func $"#func13 [method]r.m" (@name "[method]r.m") (;13;) (type 15) (canon lift (core func $"cm32p2|j|[method]r.m") (memory $memory) string-encoding=utf8))
  (type (;16;) (func (param "in" 12) (result 12)))
  (alias core export $main "cm32p2|j|frob" (core func $cm32p2|j|frob (;33;)))
  (func $"#func14 frob" (@name "frob") (;14;) (type 16) (canon lift (core func $cm32p2|j|frob)))
  (component $j-shim-component (;1;)
    (import "import-type-r" (type (;0;) (sub resource)))
    (type (;1;) (own 0))
    (type (;2;) (func (param "s" string) (result 1)))
    (import "import-constructor-r" (func (;0;) (type 2)))
    (type (;3;) (borrow 0))
    (type (;4;) (func (param "self" 3) (result string)))
    (import "import-method-r-m" (func (;1;) (type 4)))
    (type (;5;) (func (param "in" 1) (result 1)))
    (import "import-func-frob" (func (;2;) (type 5)))
    (export (;6;) "r" (type 0))
    (type (;7;) (own 6))
    (type (;8;) (func (param "s" string) (result 7)))
    (export (;3;) "[constructor]r" (func 0) (func (type 8)))
    (type (;9;) (borrow 6))
    (type (;10;) (func (param "self" 9) (result string)))
    (export (;4;) "[method]r.m" (func 1) (func (type 10)))
    (type (;11;) (func (param "in" 7) (result 7)))
    (export (;5;) "frob" (func 2) (func (type 11)))
  )
  (instance $j-shim-instance (;4;) (instantiate $j-shim-component
      (with "import-constructor-r" (func $"#func12 [constructor]r"))
      (with "import-method-r-m" (func $"#func13 [method]r.m"))
      (with "import-func-frob" (func $"#func14 frob"))
      (with "import-type-r" (type $"#type4 r"))
    )
  )
  (export $"#instance5 j" (@name "j") (;5;) "j" (instance $j-shim-instance))
  (@producers
    (processed-by "wit-component" "$CARGO_PKG_VERSION")
  )
)
